package io.linfeng.common.utils;

/**
 * @author RJF
 * @date create at 2024-07-2024/7/28-13:50
 * copyright @2024 China Automotive Technology & Research Center Co.Ltd
 */
import com.google.gson.Gson;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.core.MessageProperties;

public class MessageHelper {

    private static final Gson gson = new Gson();

    /**
     * 将 Java 对象转换为 RabbitMQ 的 Message 对象。
     *
     * @param obj 要转换的 Java 对象
     * @return 封装后的 RabbitMQ Message 对象
     */
    public static Message objToMsg(Object obj) {
        // 将 Java 对象转换为 JSON 字符串
        String jsonString = gson.toJson(obj);

        // 创建 MessageProperties，可以设置消息的一些属性，如消息 ID、过期时间等
        MessageProperties messageProperties = new MessageProperties();
        // 这里可以根据需要设置更多的属性

        // 使用 MessageBuilder 构建 Message 对象
        return MessageBuilder.withBody(jsonString.getBytes())
                .andProperties(messageProperties)
                .build();
    }
}

